import random

import pymysql

import datetime

import time

# 背诵抽题
# 运行： 抽取哪几个分类 1,2,3,4,5    1 2 3



# 抽几道题： 10
# 1、xxxxxxxxx    input('是否背诵下来 y n ')
# 记录 每道题的背诵情况，背诵时间

# 每次抽题的时候
#   确保每个分类 至少有一题
#             5           3                2
# 只抽：从  从没抽过的  没有背诵下来的 和  (背诵下来过，但上次背诵的时间已超过3天)
# 没抽过的  3   >>>  2


def mydb(sql):
    """

    :param sql: 传入SQL语句
    :return: data: 返回查询结果，如果执行不是查询语句，返回（）
    """
    # 建立数据连接
    db = pymysql.connect(
        user='root',  # 用户名
        password='2803945773',  # 密码
        host='192.168.0.123',  # 数据库ip
        port=3306,  # 数据库端口
        database="userinfo",  # 数据库名称
        charset='utf8mb4')  # 字符编码
    # 建立游标 (游标的作用：执行SQL语句，获取查询结果)
    cs = db.cursor()
    # 2、通过 游标 执行SQL
    cs.execute(sql)
    # 3、获取查询的结果，如果执行的不是 查询语句，返回（）
    userdata = cs.fetchall()  # 以元组方式返回查询结果 ， ((第一条数据),(第二条数据)  )
    # 对数据进行了 增删改 需要 commit 提交 或者 rollback 撤销、回滚
    db.commit()
    # 关闭连接
    db.close()
    return userdata


while True:
    sam_tag = """
    1 >>>>> Linux
    2 >>>>> Monkey
    3 >>>>> 性能测试
    4 >>>>> 接口与抓包
    5 >>>>> 数据库
    6 >>>>> 测试理论
    """
    print(sam_tag)
    able = input("请输入需要背诵的类型")
    able = able.replace(" ", '')
    word = []
    for i in able:

        if i == '1':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                   continue
                else:
                    a.append(qname_s[0])
            for j1 in a:

                word.append(j1)

        elif i == '2':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                    continue
                else:
                    a.append(qname_s[0])
            for j1 in a:
                word.append(j1)

        elif i == '3':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                    continue
                else:
                    a.append(qname_s[0])
            for j1 in a:
                word.append(j1)

        elif i == '4':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                    continue
                else:
                    a.append(qname_s[0])
            for j1 in a:
                word.append(j1)

        elif i == '5':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                    continue
                else:
                    a.append(qname_s[0])
            for j1 in a:
                word.append(j1)

        elif i == '6':
            xuanz = """'Linux'"""
            # data_q >>>>> question_sam表中关于linux的qname列的所有数据
            data_q = mydb(sql=f"""SELECT qname from question_sam where tag = {xuanz};""")
            # qname_s >>>>> 随机取出qname列的内容
            a = []
            for j in range(10):
                qname_s = random.choice(data_q)
                if qname_s[0] in a:
                    continue
                else:
                    a.append(qname_s[0])
            for j1 in a:
                word.append(j1)
        else:
            print("输出有误，请重新输入")
    h = []
    if len(word) > 10:
        for i in range(99999):
            r = random.choice(word)
            if r not in h:
                h.append(r)
            elif len(h) == 10:
                break
            else:
                continue
        for word_f in h:
            print(word_f)
            app = input("背下来了请输入1，没背下来请输入0")
            if app == '1':  # 如果用户输入了 1 就修改数据库
                mydb(sql=f"""UPDATE question_sam set is_ok = 1 where qname='{word_f}'""")
                mydb(sql=f"""UPDATE question_sam set last_time = NOW() where qname = '{word_f}';""")
            elif app == '0':
                print("再接再厉哦！")
            else:
                print("输入有误")
    else:
        for word_d in word:
            print(word_d)
            app = input("背下来了请输入1，没背下来请输入0")
            if app == '1':  # 如果用户输入了 1 就修改数据库
                mydb(sql=f"""UPDATE question_sam set is_ok = 1 where qname='{word_d}'""")
                mydb(sql=f"""UPDATE question_sam set last_time = NOW() where qname = '{word_d}';""")
            elif app == '0':
                print("再接再厉哦！")
            else:
                print("输入有误")

    # # 没抽过的               5道
    # data_null = mydb(sql="SELECT * from question_sam where last_time is null;")
    # print(data_null)

    # # 没背下来的             3道
    # data_o = mydb(sql="SELECT * from question_sam where is_ok = 0;")
    # print(data_o)

    # # 背下来，但过了3天的     2道
    # data_tm = mydb(sql="SELECT * from question_sam where is_ok = 1;")
    # print(data_tm)
    # # 数据库时间
    # data_time = mydb(sql="SELECT last_time from question_sam;")
    # pasb = []
    # print(data_time)
    # for ins in range(len(data_time)):
    #     pasb.append(data_time[ins][0])
    #     # 获取当前时间
    #     now_time = datetime.datetime.now()
    #     # 当前时间 减去 3 天
    #     res = now_time - datetime.timedelta(days=3)
    #     if res > datetime(data_time):

    # # 背下来后 is_ok 改成 1 , last_time 改成当前时间
    # set = input("背下来输入1，没背下来输入0")
    # set = int(set)
    # data_is = mydb(sql=f"UPDATE question_sam set is_ok = {set} where qname = '{}';")


